//对象转查询字符串
function objToSearchString(obj){
    let str = ''
    for( let key in obj ){
        str += `${key}=${obj[key]}&`
    }
    return str.slice( 0 , str.length-1 )
}

//封装ajax函数
    function ajax( method , url , params ){
        //new一个Promise对象并返回

        return new Promise( (resolve , reject)=>{
            //1、创建请求对象
            var xhr = new XMLHttpRequest()
            //2、配置请求对象
            //判断如果是get请求 就做地址拼接 反之就不拼接
            xhr.open( method , method == 'get' ? url + '?' + objToSearchString( params ) : url )
            //3、设置回调函数
            xhr.onreadystatechange = function(){
                //判断状态码是4的时候
                if( xhr.readyState == 4 ){
                    resolve( JSON.parse( xhr.responseText ) )
                    //resolve会更改Promise对象的状态为 成功 ， 同时会立即调用then的回调函数
                }
            }
            //4、发送请求
            //先对post请求设置请求头 content-type 
            xhr.setRequestHeader( 'content-type' , 'application/x-www-form-urlencoded' )
            //判断如果是get请求就没有参数
            xhr.send( method == 'get' ? null : objToSearchString(params) )
        } )
    }


